<?php 
/**
 * ... ...
 * ... ...
 *
 */ 

/**
 * 视图类 FaceWindow 
 *
 * @access public
 */
class JJ_FaceWindow 
	extends JCAT_ViewGtk
{
	
	/**
	 * 构造函数 
	 *
	 * @access	public
	 * @param	$aParent	JJ_SessionWindow		视图的父对象(父视图 或 控制器)。注意：视图不应单独存在，必须有一个父对象！ 
	 * @return	void
	 */
	public function JJ_FaceWindow(JJ_SessionWindow $aParent)
	{
		// 调用父类构造函数 
		$this->JCAT_ViewGtk('JJ_FaceWindow','template.JJ_SessionWindow.glade','JJ_FaceWindow',$aParent) ;

		$this->Initialize() ;	
	}
	
	/**
	 * 初始化 视图 
	 *
	 * @access	protected
	 * @return	void
	 */
	protected function Initialize()
	{
		$this->Create() ;
	
		// 创建 模型
		$aFaceModel = new GtkListStore(GdkPixbuf::gtype,JCAT_Gtk_TYPE_STRING);
		$wndFaceTable = $this->GetChildWidget('FaceTable') ;
		$wndFaceTable->set_model($aFaceModel) ;
		$wndFaceTable->set_pixbuf_column(0) ;
		
		// 载入图像
		$aIterator = new JCAT_FSOIterator( ROOT_PATH.'Resource/Face/',JCAT_FSOIterator::FILE|JCAT_FSOIterator::RETURN_PATH ) ;
		$aIterator->First() ;
		while( !$aIterator->IsDone() )
		{
			$sPath = $aIterator->Current() ;

			try{
				$aImage = GdkPixbuf::new_from_file($sPath) ;
				$aFaceModel->append( array($aImage,$sPath) ) ;
			}
			
			// 无法作为 图像载入
			catch (Exception $aException)
			{$aException ;
				// ... ...
			}
			
			$aIterator->Next() ;
		}
	}
	
	/**
	 * 关闭
	 *
	 * @access	public
	 * @return	void
	 */
	public function OnCloseWindow()
	{
		$this->ShowView(false) ;
	}

	
	/**
	 * 选择
	 *
	 * @access	public
	 * @return	void
	 */
	public function OnSelectFace()
	{
		$this->ShowView(false) ;
		
		$wndFaceTable = $this->GetChildWidget('FaceTable') ;
		$arrItem = $wndFaceTable->get_selected_items() ;
		
		$aFaceModel = $wndFaceTable->get_model() ;
		$aItem = $aFaceModel->get_iter_from_string($arrItem[0][0]) ;
		if(!$aItem)
		{
			return ; 
		}
		
		$sFacePath = $aFaceModel->get_value($aItem,1) ;
		
		// 插入
		$aSessionView = $this->GetParent() ;
		JCAT_ASSERT::ASSERT_INSTANCE($aSessionView,'JJ_SessionWindow');
		$aSessionView->InsertImage($sFacePath) ;
	}
}

?><?
/**
 * [注意!!]
 *	以下内容由 JCAT PHP Toolbox 自动维护，手动更改的内容会被 JCAT PHP Toolbox 抹除，
 *	同时还可能破坏格式，导致 JCAT PHP Toolbox 无法正常读取。
 */
/*<<[UnmodifiableBlock.Start]::Coder Dialog Data::>>&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//
<<{{DocumentClass:ViewGtkDoc}}>>
eCVEQSU5RFJNJThGJUEyJTQwJTEwJUJEbyVCMiUzRmIlQjglQUYlMjglMDMlM0JuJTNCJTk5REFnYSUwNiUxNCVBMSVEQnglREElQjQlRDglRDElOTYlMTYlMEMwYSVDNCVGOCVERiVCNyVCQSVGRCU5OCVDMyVCOCU5QiVDRCUxRSUyQSVEMCVBRiU1RSVCRCVBRXolRDUlMTQlMTklRThQJTIyJTEzaSUwRSVBRCVBOCVE
NiVBMyVFOEElOUUlM0IlRjdIJTIzJTlDJUQ1JUI2JUEwZSUxOSVEMC0lRDN6JTAwJTFBSCVGMyVFQyU3RSVGQ0tmJTlFJUFCVGFQJTg5JUREJTk4bXclODJWbEIlQUIlQjVEJUJCJUMwJUQ0JUQ3JUY5JTk2JUU5VDAlQTZPJThBJTdDJUMzJTkySiU5RiVGQyU5QyU3QyU3QiU4RV90JThGLiUxNiVBQyVEMCVBNyVBQyVD
QyVERiU4QSU4NCVFOSUxRiUwMnp1JUZFaUUlQUMlMkN5JTlFJUNEeCVCNiVDQyVFQiVENkolRDAlRTUlQjUlMDclOUZyJUMwJTk3JTJCViVCOSU4RSVDMiVEQUglMUIlRDElODQlOUQlQjglMEElODElRjYlREQlRUMlMjIlRUElRjBCJTgxSCVFQiVBOCVFNk4lQTMlNUQlQTclRkFUJTdEJTI2JTVDJTg2JUY5JUZFTyVD
MyUyOCVBN1glQTklMjclRjIlREIlRkElMTBsJUVEJUQ2JTNCdSVDRCUwRmglMDklRkFhJTVCJTk2VSVBNSUyQiUyRiUxOCVFNSVDNVYlRUIlMDUlQkQlQTMlQkElRDIlNUVzJUIxJTJDWCUyNnclMDAlM0IlRTElQTglMEQlM0YlRjdyJTE5JTE2JUQyJTk0JUFBJTkyJUU5SiVCRiVFRCVBQSUxMHYlOUVVJTYwJTA0JTJC
JTlDJTNDJTkxJTE5WER2JTE5JUM5JUJDJTkyJUFFJUEyJThBJUIwVCUzQiUwNiVDMiUwMyUwQyVGRCVGOHg4JTQwJUVEJTlCbEh1JThGJTNFJTBCJTFGJThGT09fJUJGMCU5QiUwQ0MlNUMlOEFwJTEzJUVFJTNEJUVDJUI2JTNEJTNDJTFBJUJDcmIlMDclMUIlMTclQjBRJTk0JUE0JUE5JUYwJUQzJUMwJTIzNiVCMSVG
RCVENCUxNGMlMjclMTQlRDNNJUJGJTAyJTlFJUUzJUM1aSVEQiU4QiU4NSVFMzclNUUlODM5NkMlRTJCJUNFJTE3JTgxMyVFMCU1RSVEQzclMDglMjclQzMrJTAyJUFEayVFMCVEQSVCNyVGMSUzRUglQkIlQzIlMUYlODIlOEUlODMlRUYlQjQlREUlOTElQTMlQ0UtJTNCJTBDJUVCJUY0JTI0JTdEYiU4RiUxN3ItJTdG
cyVDNTglQkYlRTklREIlOUUlMThmJUU3JTk2JTI3JTdGVCVGRiUzRmslMTQlMkYlRUUlMDN3JUZFJUZFJTFBJTkxQSVCOCVDN1YlNjBjJTJCbCVGQyU3RCVEMnElQzV4OCU4QSslRDd4cVglQ0Y5JUFFJTAzMSU5NyUxNiU0MCUxRERDZiU1RSVCQzJkJTkwNCUxN1MlOEMtJUUwWlElODQlQ0RxJTlDJThBJUEwJThEJUMx
JUZBJTE0JUI4JTEwcCUwRSUxQiU1QyUwMyUxNzglRDMlQzElOENLJTVCJUExJUQ3JTNEJTE5JUZBJTExJTdFJTA3JUFCRyU3RSVGRk5aJTdCJTNDJUZFJTA2ayVDQlIlOTY!
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&<<[UnmodifiableBlock.End]::Coder Dialog Data::>>*/
?>